# 导入cv模块
import cv2 as cv


# 构建检测函数
def face_detect_demo(img):
    gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
    # 导入分类器
    face_detect = cv.CascadeClassifier('D:/Programming_Softwares/OpenCV/opencv/sources/data/haarcascades'
                                       '/haarcascade_frontalface_default.xml')
    face = face_detect.detectMultiScale(gray)
    for x, y, w, h in face:
        cv.rectangle(img, (x, y), (x + w, y + h), color=(0, 0, 255), thickness=2)
    cv.imshow('result', img)


# 读取摄像头
cap = cv.VideoCapture(0)  # 0默认摄像头

'''
或者说，导入视频
cap = cv.VideoCapture(sp1.mp4)
'''

# 循环
while True:
    flag, frame = cap.read()
    if not flag:
        break
    else:
        face_detect_demo(frame)
    if ord('q') == cv.waitKey(1):
        break
        '''
        当cv.waitKey(0)参数为0时，视频是一帧一帧的
        '''

# 释放内存
cv.destroyAllWindows()
# 释放摄像头
cap.release()
